using System;

namespace MedicalManagementSystem.Models
{
    public interface IRuleViolation
    {
        string ErrorMessage { get; }
        string PropertyName { get; }
        object ValidatedObject { get; }

        /// <summary>
        /// Property is used as a 'rawValue' parameter in ValueProviderResult constructor.
        /// This object will be converted to string and will appear as previous value.
        /// </summary>
        Object PreviousValue { get; }

        /// <summary>
        /// Property is used as a 'attemptedValue' parameter in ValueProviderResult constructor.
        /// It looks like there should be string representation of PreviousValue
        /// </summary>
        string AttemptedValue { get; }
    }
}